Conventional browsers may require the use of antiquated file upload controls to move files from a local machine running a browser to a remote machine supporting an online file management system. For example, file uploads that are done through conventional browsers are performed by a native browser control. This browser control typically includes a text field for entering a path and filename, and an associated browse button. Clicking the browse button launches an operating system file explorer window from which a user can pick a file. After selecting the file, a button (e.g., “OK” button) may need to be clicked in a secondary dialog box. This second action causes the full file path to be dropped into the text field. Then, yet another button (e.g., “upload” button) may need to be clicked to confirm the upload to a target repository. This approach may be cumbersome and different from a more natural drag and drop experience.
Conventional web browsers may have provided a sub-optimal experience with respect to uploading files from a local source to a remote server. Limitations associated with this type of process may have required multiple user actions to upload a file and may also have lead to security and incompletion issues. Conventional systems may also have obscured screen real estate associated with enterprise applications. This real estate may have been better employed in displaying output associated with an enterprise application than with standard browser functionality associated with uploading a file. An enterprise application may include software hosted on an application server that provides services to users belonging to an enterprise. These users may have an enhanced enterprise application experience by interacting with specific browser chrome and/or specific enterprise application content in specific ways. However, a conventional web browser may have required applications, including enterprise applications, to deliver content and functionality in a browser window using only certain techniques (e.g., hypertext markup language (HTML)), and may also have controlled the nature, quantity, and location of available chrome. While providing an open, generic, global approach to content delivery and chrome management, this requirement may have limited the richness of possible interactions between web browsers and enterprise applications.
A web browser extension is a code package that can be installed into a browser and/or client device (e.g., computer) running a browser. The extension may add a new feature to a browser, extend an existing functionality, modify a visual theme, and so on. This browser may employ an extensible markup language (XML) user-interface language (XUL, pronounced zuul) to describe and support application user interfaces. XUL provides an overlay functionality that facilitates merging user interfaces from different sources into one user interface (UI). For example, UI from a browser and a browser extension(s) may be merged. Recall that a browser extension may provide additional functionality for a browser. This functionality may include, for example, additional UI features that facilitate customizing a browser UI.
The collective UI adornment for a browser (e.g., border, menus, frames, buttons, scrollbars) may be referred to as “browser chrome” or just “chrome”. A browser extension may interact with the browser chrome. A browser extension may include a XUL file(s), JavaScript, a style sheet(s), an image(s), and so on. This set of items may be loaded into a single package (e.g., Zip file). The package may be loaded into, unwrapped by, and installed on a client device associated with a browser. Once installed, package components may be operably connected to a browser and/or browser object(s) using the XUL overlay feature. Though added to a browser, browser extension code may remain separate and removable. An extension may reside in a browser and/or client device rather than being part of a web page transmitted by a web service (e.g., enterprise application) to the browser and/or client. Thus, conventional systems may employ functionality (e.g., XUL) to facilitate enhancing web browsers via web browser extensions.